Existing virtualization technology provides for an abstraction from the underlying hardware resources of a single physical machine. This allows a single physical machine to be partitioned into multiple virtual machines with isolated execution and resource guarantees. However, such virtualization technology does not provide for partitioning multiple virtual machines across multiple physical machines.
Other existing virtualization and cloud computing technologies provide for utilizing resources of multiple machines in a single virtual machine. However, the resources of the single virtual machine, using such technologies, remain tightly bound to the underlying hardware resources of the multiple machines.
In addition, failure of physical machines using existing virtualization and cloud computing technologies is a particular problem. For example, failure of a physical machine can cause a reduction in capability for a virtual machine that utilizes the physical machine. Furthermore, migrating virtual machines across geographically distributed data centers can be difficult when virtual machines are tightly bound to underlying hardware resources and when the large size of live memory of each system has to be transferred over a network over a long distance. Such migration can be time consuming, cause service delays, and negatively impact business operations.
Therefore, there exists ample opportunity for improvement in technologies related to provisioning of resources for virtual machines across multiple physical machines, which can be located in geographically distributed data centers.